8cc67c3be2f1425f53d90a1faa61bed21d25316a,ui/src/org/pentaho/di/ui/trans/steps/fileinput/text/TextFileInputDialog.java,TextFileInputDialog,getCSV,#,2580
Before Change
int clearFields = meta.content.header ? SWT.YES : SWT.NO;
int nrInputFields = meta.inputFiles.inputFields.length;
if ( meta.content.header && nrInputFields > 0 ) {
MessageBox mb = new MessageBox( shell, SWT.YES | SWT.NO | SWT.CANCEL | SWT.ICON_QUESTION );
mb.setMessage( BaseMessages.getString( PKG, "TextFileInputDialog.ClearFieldList.DialogMessage" ) );
mb.setText( BaseMessages.getString( PKG, "TextFileInputDialog.ClearFieldList.DialogTitle" ) );
clearFields = mb.open();
if ( clearFields == SWT.CANCEL ) {
return;
}
}
try {
wFields.table.removeAll();
FileObject fileObject = textFileList.getFile( 0 );
fileInputStream = KettleVFS.getInputStream( fileObject );
Table table = wFields.table;
CompressionProvider provider =
CompressionProviderFactory.getInstance().createCompressionProviderInstance( meta.content.fileCompression );
inputStream = provider.createInputStream( fileInputStream );
InputStreamReader reader;
if ( meta.getEncoding() != null && meta.getEncoding().length() > 0 ) {
reader = new InputStreamReader( inputStream, meta.getEncoding() );
} else {
reader = new InputStreamReader( inputStream );
}
EncodingType encodingType = EncodingType.guessEncodingType( reader.getEncoding() );
if ( clearFields == SWT.YES || !meta.content.header || nrInputFields > 0 ) {
// Scan the header-line, determine fields...
String line;
if ( meta.content.header || meta.inputFiles.inputFields.length == 0 ) {
line = TextFileInputUtils.getLine( log, reader, encodingType, fileFormatType, lineStringBuilder );
if ( line != null ) {
// Estimate the number of input fields...
// Chop up the line using the delimiter
String[] fields =
TextFileInputUtils.guessStringsFromLine( transMeta, log, line, meta, delimiter, enclosure,
escapeCharacter );
for ( int i = 0; i < fields.length; i++ ) {
String field = fields[i];
if ( field == null || field.length() == 0 || ( nrInputFields == 0 && !meta.content.header ) ) {
field = "Field" + ( i + 1 );
} else {
// Trim the field
field = Const.trim( field );
// Replace all spaces & - with underscore _
field = Const.replace( field, " ", "_" );
field = Const.replace( field, "-", "_" );
}
TableItem item = new TableItem( table, SWT.NONE );
item.setText( 1, field );
item.setText( 2, "String" ); // The default type is String...
}
wFields.setRowNums();
wFields.optWidth( true );
// Copy it...
getInfo( meta );
}
}
After Change
int clearFields = meta.content.header ? SWT.YES : SWT.NO;
int nrInputFields = meta.inputFiles.inputFields.length;
if ( nrInputFields > 0 ) {
MessageBox mb = new MessageBox( shell, SWT.YES | SWT.NO | SWT.CANCEL | SWT.ICON_QUESTION );
mb.setMessage( BaseMessages.getString( PKG, "TextFileInputDialog.ClearFieldList.DialogMessage" ) );
mb.setText( BaseMessages.getString( PKG, "TextFileInputDialog.ClearFieldList.DialogTitle" ) );
clearFields = mb.open();
if ( clearFields == SWT.CANCEL ) {
return;
}
}
try {
wFields.table.removeAll();
FileObject fileObject = textFileList.getFile( 0 );
fileInputStream = KettleVFS.getInputStream( fileObject );
Table table = wFields.table;
CompressionProvider provider =
CompressionProviderFactory.getInstance().createCompressionProviderInstance( meta.content.fileCompression );
inputStream = provider.createInputStream( fileInputStream );
InputStreamReader reader;
if ( meta.getEncoding() != null && meta.getEncoding().length() > 0 ) {
reader = new InputStreamReader( inputStream, meta.getEncoding() );
} else {
reader = new InputStreamReader( inputStream );
}
EncodingType encodingType = EncodingType.guessEncodingType( reader.getEncoding() );
// Scan the header-line, determine fields...
String line = TextFileInputUtils.getLine( log, reader, encodingType, fileFormatType, lineStringBuilder );
if ( line != null ) {
// Estimate the number of input fields...
// Chop up the line using the delimiter
String[] fields =
TextFileInputUtils.guessStringsFromLine( transMeta, log, line, meta, delimiter, enclosure,
escapeCharacter );
for ( int i = 0; i < fields.length; i++ ) {
String field = fields[i];
if ( field == null || field.length() == 0 || !meta.content.header ) {
field = "Field" + ( i + 1 );
} else {
// Trim the field
field = Const.trim( field );
// Replace all spaces & - with underscore _
field = Const.replace( field, " ", "_" );
field = Const.replace( field, "-", "_" );
}
TableItem item = new TableItem( table, SWT.NONE );
item.setText( 1, field );
item.setText( 2, "String" ); // The default type is String...
}
wFields.setRowNums();
wFields.optWidth( true );
// Copy it...
getInfo( meta );
// Sample a few lines to determine the correct type of the fields...
String shellText = BaseMessages.getString( PKG, "TextFileInputDialog.LinesToSample.DialogTitle" );